#include "gruppo.h"

Gruppo::Gruppo(QString i, QString name, QString own): id(i), nome(name), proprietario(own){}

Gruppo::~Gruppo(){
    //QVector<User*> membri
    for(int i=0;i!=membri.size();i++){
        delete membri[i];
    }
}

QString Gruppo::getId() const{
    return id;
}

QString Gruppo::getNome() const{
    return nome;
}

QString Gruppo::getProp() const{
    return proprietario;
}

QVector<User*> Gruppo::getMembri() const{
    return membri;
}

void Gruppo::clearvector(){
    membri.clear();
}

void Gruppo::updateGru(User* new_user){ //al momento dell'upgrade di un utente, il new_user relativo deve sostituire il puntatore del
                                        //precedente.
    for(QVector<User*>::iterator it=membri.begin(); it!=membri.end();it++){
        if((*it)->getNick()==new_user->getNick()){  //qua bisogna fare confronto tra i nick perche' le zone di memoria son !=
            membri.erase(it);
            membri.append(new_user);
        }
    }
}

bool Gruppo::insertUser(User* user){
    membri.push_back(user);
    return true;
}

bool Gruppo::deleteUser(User* user){
    for(QVector<User*>::iterator it= membri.begin(); it!=membri.end(); it++){
        if((*it)==user){
            membri.erase(it);
            return true;
        }
    }
    return false;
}
